Asynchronous messaging and communication in a social networking system

ABSTRACT

The present disclosure is for systems and methods for asynchronous communication within a social networking system. Specifically, the present invention is for receiving capsuled data that is directed to a recipient. The capsuled data may be partially viewable by a recipient within the social networking system, but may not become fully viewable until a trigger condition is met. The systems and methods disclosed herein enable a determination of whether a trigger condition is met, and, if it is met, the capsuled data may be fully viewable by a recipient.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Non-Provisional patentapplication Ser. No. 16/672,431, filed Nov. 1, 2019 entitled“ASYNCHRONOUS MESSAGING AND COMMUNICATION IN A SOCIAL NETWORKINGSYSTEM.” That application claims priority to U.S. Provisional PatentApplication Ser. No. 62/781,583, filed Dec. 18, 2018 entitled “Systemsand Methods for a Resilient Messaging Infrastructure for AsynchronousMessaging and Consumption.” The entire content of both application isincorporated herein by reference.

BACKGROUND Field of the Art

This disclosure relates to systems and methods for asynchronousmessaging within a social networking system. More particularly, thepresent invention relates to a resilient messaging infrastructure thatenables asynchronous messaging and consumption of digital data within asocial networking system.

Discussion of the State of the Art

Current systems and method for sharing digital data is generallysynchronous. For example, users who wish to share digital data typicallyshare the data via email messages, text messages, or social mediamessages and the like. The receiving parties may thereafter consume thedigital data upon receipt or at their convenience.

These digital media communications are enabled over client-servercommunication infrastructure, wherein users access messaging clients(such as email clients, browsers, instant messaging clients, shortmessage service (SMS) clients, or social networking systems) on a clientdevice to create and send a message to intended recipients. Themessaging client sends the message to a message server associated withthe messaging client (e.g., an email server, a web server, an instantmessaging server, a short message service center (SMSC), respectively).The message server in turn sends the message to a similar messagingclient on a client device of the intended recipient.

The messaging servers that route digital media messages from one user toanother are not resilient. For example, current messaging servers aredesigned to route a large volume of data in accordance to various speedand deliverability criteria. However, messaging servers are not enabledto store digital data over large periods of time because the additionalstorage and querying associated with storing data would significantlyslow down the speed of message transmission. Indeed, messages aregenerally stored on a first-in, first-out mode and deleted upontransmission to free up memory for routing new data packets. Taskingmessaging servers with holding and conditionally releasing digital datarequires a significant overhaul of the existing system, which would addsignificant additional costs and potentially slow down the messagetransmission speeds. As a result, messaging servers simply cannot handleadditional layers of conditionals, heuristics, or resiliency required totransmit data further into the future without significantly compromisingmessaging speed, accuracy, and delivery costs.

SUMMARY

The present invention overcomes many of the technical and processdifficulties typically associated with asynchronous and resilient datatransmission and consumption in high-throughput and high-volumemessaging systems. Specifically, the present invention introduces anintermediary server for storing data and releasing data upon pre-set orcontinually evolving variables.

In one embodiment, the present invention permits a user to selectdigital data that will be disseminated to pre-selected recipients if andwhen certain conditional criteria are met. In such an embodiment, theuser selected digital data may be stored in an intermediary server thatalso queries other data sources to determine if the user selectedconditional criteria are met. If those criteria are met, then theselected digital data is transmitted to the one or more recipients via amessaging server and an end user application.

In one embodiment of the invention, the intermediary server may also becomprised of an authentication system to verify or re-write datatransmission rules for delivering digital data to a user. For example,the authentication system may re-write digital data packet headerinformation or payload information to ensure that the recipient, who mayhave changed his or her reception address—actually receives the digitaldata. In another embodiment, the authentication system may query adifferent set of databases than the ones queried by the intermediaryserver to ensure that the conditional criteria set forth by the user isactually met.

As such, the inventive system unconventionally introduces anintermediary server and additional complexity in the digital messagingecosystems. This introduction is generally undesired because it addssignificant additional complexity, errors, and time delay to the processof delivering digital data payload over a

More specifically, the present invention is for a computer programproduct for delivering and displaying capsuled digital data, wherein thecomputer program product comprises a non-transitory computer readablestorage medium having instructions encoded thereon that, when executedby a processor, cause the processor to receive capsuled digital data,the capsuled digital data comprising recipient information, releaseagent information, digital data to display to a recipient, and triggerevent information for digitally releasing the media to a recipient, thetrigger, the partially viewable data being available to the recipientuntil a trigger event is met, determine whether the trigger event is metand/or whether the trigger event is closer to being met, provide anupdated partially viewable version of the capsuled digital data if thetrigger event is closer to being met, and provide the capsuled digitaldata to the recipient if the trigger event is met.

In another embodiment, the present invention is for acomputer-implemented method for delivering and displaying capsuleddigital data, wherein the computer-implemented method comprisesreceiving capsuled digital data, the capsuled digital data comprisingrecipient information, release agent information, digital data todisplay to a recipient, and trigger event information for digitallyreleasing the media to a recipient, the trigger event informationcomprising a trigger event that must be met in order to release thecapsuled digital data to the recipient, generating a partially viewableversion of the capsuled digital data responsive to sender preferences,notifying the recipient that a capsuled message has been created for therecipient, the notification comprising trigger event informationassociated with the capsuled message, providing, in a graphical userinterface, the partially viewable version of the capsuled digital datathat was generated, the partially viewable data being available to therecipient until a trigger event is met, determining whether the triggerevent is met and/or whether the trigger event is closer to being met,providing an updated partially viewable version of the capsuled digitaldata if the trigger event is closer to being met, and providing thecapsuled digital data to the recipient if the trigger event is met.

In one embodiment, the capsuled digital data may be generated by asender within a social networking system. The recipient information maybe comprised of identifying a recipient within the social networkingsystem and the release agent information may be comprised of identifyinga release agent within the social networking system. In one embodiment,the capsuled digital data is comprised of text data, image data, and/orvideo data. In one embodiment, the capsuled digital may be comprised ofdigital files, including, but not limited to text/document files, imagefiles, video files, audio files, picture files, etc.

In one embodiment of the invention, the trigger event information may becomprised of a calendar based trigger, an event based trigger, aconditions based trigger, a location based trigger and/or a releaseagent based trigger.

In one embodiment, the calendar based trigger is comprised of a date atwhich the capsuled digital data is released. In another embodiment, thecalendar based trigger may also be comprised of a time at which thecapsuled digital data is released.

The event based trigger may be comprised of an event, wherein theoccurrence of the event causes the capsuled digital data to be released.In one embodiment, the occurrence of a trigger event is detected byquerying a truth source. In one embodiment, the occurrence of a triggerevent is detected by using an application programming interface.

In one embodiment, the occurrence of a location based trigger isdetected by obtaining location data from a computing device used by therecipient of the capsuled data, and the capsuled digital data isreleased if the recipient is at or near a location that is provided bythe location based release trigger.

In one embodiment, the release agent based trigger enables a releaseagent to release capsuled data posthumously after the death of thesender. The release agent trigger may be comprised of release agentidentity information, wherein the release agent identity may becomprised of at least one release agent who is a user within the socialnetworking system and capable of initiating a release sequence. Therelease agent trigger may be implemented, in one embodiment of theinvention, by receiving a release authorization from at least onerelease agent, notifying the sender that a release authorization hasbeen received from at least one release agent, the notificationcomprising a cancellation election within a graphical user interfaceenabling the sender to cancel the release of capsuled digital data,contacting the sender through a communications means outside of thesocial networking system if the sender has requested additional contactattempts, the contact enabling the sender to provide a cancellationelection to cancel the release of capsuled digital data, and sending thecapsuled digital data to the intended recipient if a cancellationelection is not received from the sender within a pre-determined periodof time.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The accompanying drawings illustrate several embodiments and, togetherwith the description, serve to explain the principles of the inventionaccording to the embodiments. It will be appreciated by one skilled inthe art that the particular arrangements illustrated in the drawings aremerely exemplary and are not to be considered as limiting of the scopeof the invention or the claims herein in any way.

FIG. 1 is a block diagram of an exemplary operating environment for adelayed delivery system, in accordance with an embodiment of theinvention.

FIG. 2 is a block diagram illustrating an exemplary release engine inaccordance with an embodiment of the invention.

FIG. 3 is a process diagram illustrating an exemplary method forexecuting the invention, in accordance with an embodiment of theinvention.

FIG. 4 is an illustration of a graphical user interface in accordancewith an exemplary embodiment of the invention.

FIG. 5 is a block diagram illustrating an exemplary hardwarearchitecture of a computing device, according to a preferred embodimentof the invention.

FIG. 6 is a block diagram illustrating an exemplary logical architecturefor a client device, according to a preferred embodiment of theinvention.

FIG. 7 is a block diagram showing an exemplary architectural arrangementof clients, servers, and external services, according to a preferredembodiment of the invention.

FIG. 8 is another block diagram illustrating an exemplary hardwarearchitecture of a computing device, according to a preferred embodimentof the invention.

DETAILED DESCRIPTION

The inventive system and method (hereinafter sometimes referred to moresimply as “system” or “method”) described herein significantly reducesthe computing resources, computing time, and costs associated withmaking predictions in a deployed machine learning system, regardless ofwhether the predictions are made using a deployed system or a cloudscoring API. Specifically, the inventive system stores certainpredictions once they are made, processes the stored data, and usesstored predictions if newly requested predictions meet certainsimilarity criteria associated with the stored predictions. Theinventive system described herein reduces the computing resources,computing time, and costs associated with making predictions in adedicated, or shared/rented machine learning system environment.

One or more different embodiments may be described in the presentapplication. Further, for one or more of the embodiments describedherein, numerous alternative arrangements may be described; it should beappreciated that these are presented for illustrative purposes only andare not limiting of the embodiments contained herein or the claimspresented herein in any way. One or more of the arrangements may bewidely applicable to numerous embodiments, as may be readily apparentfrom the disclosure. In general, arrangements are described insufficient detail to enable those skilled in the art to practice one ormore of the embodiments, and it should be appreciated that otherarrangements may be utilized and that structural, logical, software,electrical and other changes may be made without departing from thescope of the embodiments. Particular features of one or more of theembodiments described herein may be described with reference to one ormore particular embodiments or figures that form a part of the presentdisclosure, and in which are shown, by way of illustration, specificarrangements of one or more of the aspects. It should be appreciated,however, that such features are not limited to usage in the one or moreparticular embodiments or figures with reference to which they aredescribed. The present disclosure is neither a literal description ofall arrangements of one or more of the embodiments nor a listing offeatures of one or more of the embodiments that must be present in allarrangements.

Headings of sections provided in this patent application and the titleof this patent application are for convenience only and are not to betaken as limiting the disclosure in any way.

Devices that are in communication with each other need not be incontinuous communication with each other, unless expressly specifiedotherwise. In addition, devices that are in communication with eachother may communicate directly or indirectly through one or morecommunication means or intermediaries, logical or physical.

A description of an aspect with several components in communication witheach other does not imply that all such components are required. To thecontrary, a variety of optional components may be described toillustrate a wide variety of possible embodiments and in order to morefully illustrate one or more embodiments. Similarly, although processsteps, method steps, algorithms or the like may be described in asequential order, such processes, methods and algorithms may generallybe configured to work in alternate orders, unless specifically stated tothe contrary. In other words, any sequence or order of steps that may bedescribed in this patent application does not, in and of itself,indicate a requirement that the steps be performed in that order. Thesteps of described processes may be performed in any order practical.Further, some steps may be performed simultaneously despite beingdescribed or implied as occurring non-simultaneously (e.g., because onestep is described after the other step). Moreover, the illustration of aprocess by its depiction in a drawing does not imply that theillustrated process is exclusive of other variations and modificationsthereto, does not imply that the illustrated process or any of its stepsare necessary to one or more of the embodiments, and does not imply thatthe illustrated process is preferred. Also, steps are generallydescribed once per aspect, but this does not mean they must occur once,or that they may only occur once each time a process, method, oralgorithm is carried out or executed. Some steps may be omitted in someembodiments or some occurrences, or some steps may be executed more thanonce in a given aspect or occurrence.

When a single device or article is described herein, it will be readilyapparent that more than one device or article may be used in place of asingle device or article. Similarly, where more than one device orarticle is described herein, it will be readily apparent that a singledevice or article may be used in place of the more than one device orarticle.

The functionality or the features of a device may be alternativelyembodied by one or more other devices that are not explicitly describedas having such functionality or features. Thus, other embodiments neednot include the device itself.

Techniques and mechanisms described or referenced herein will sometimesbe described in singular form for clarity. However, it should beappreciated that particular embodiments may include multiple iterationsof a technique or multiple instantiations of a mechanism unless notedotherwise. Process descriptions or blocks in figures should beunderstood as representing modules, segments, or portions of code whichinclude one or more executable instructions for implementing specificlogical functions or steps in the process. Alternate implementations areincluded within the scope of various embodiments in which, for example,functions may be executed out of order from that shown or discussed,including substantially concurrently or in reverse order, depending onthe functionality involved, as would be understood by those havingordinary skill in the art.

It is noted that multiple instances of the disclosed systems andsub-systems may be present in various embodiments, and that referencesherein to a system or a sub-system (e.g., user devices 104, or servers101, etc.) generally refers to one or more of the systems orsub-systems. In an alternative embodiment, the functionalities ofmultiple agents may be merged, modified, or split into a functionallyequivalent set of systems and sub-systems. The various computing agentsmay comprise one or more computing devices, like the computing device 10illustrated in FIG. 5 and/or the computer system 40 illustrated in FIG.8.

FIG. 1 illustrates a block diagram of an exemplary operating environmentfor a delayed delivery system, in accordance with an embodiment of theinvention. It is comprised of one or more user device(s) 103, one ormore data source(s) 107, a network 110, and a release engine 101, whichmay be further comprised of a data acquisition system 102 and a releasetrigger system 106.

As described in detail below, the various systems and sub-systems worktogether to receive and store one or more messages with conditionalrelease criteria. Once such a message request is received, the systemqueries the one or more data sources (if necessary) to obtain thedigital data that a user has requested to be released based on aconditional criteria. Thereafter, the system determines if one or moreconditional criteria are met, and if criteria are met, then the messageis released for further delivery by a messaging server. In accordance,the operating environment of FIG. 1 illustrates how the messages andconditional criteria may be routed for storage, delivery, criteriaevaluation, and release.

Generally, the system receives digital data that a user wants to sendonce a conditional criteria is met. In some instances, the digital datawith a conditional may be referred to as a “capsule” for ease ofreference. As described in greater detail below, a variety of differentconditionals may be provided, including, but not limited to, atime-based conditional (i.e. a time capsule which may be released withinat a certain date/time), an event-based conditional (i.e. an eventcapsule, which may be released when a certain event starts and/or ends),an outcome-based conditional (i.e. an outcome capsule, which may bereleased when a certain outcome is obtained), a location-basedconditional (i.e. a location capsule, which may be released when therecipient is at a certain location), an association-based conditional(i.e. a connection capsule, which may be released when the distancebetween a user and a recipient and the nature of connection between auser and a recipient—as defined in a social networking system's socialgraph—is determined and/or verified).

In one embodiment, the release engine 101 intercepts digital datatransmission requests by watching for, or filtering for conditionalrelease payload information in digital data packet headers. Once therequest is identified or intercepted, the release engine 101, via a dataacquisition system 102, may obtain a copy of the digital data from oneor more third party data sources 108 if necessary. For example, in someembodiments, the digital data payload may already be present in themessage. However, in other embodiments or instances, the digital datapayload information may be comprised of a reference URL or an identifierwhere the digital file may be stored. As would be readily apparent to aperson of ordinary skill in the art, the digital files may be stored ona user's device, an on-premise server, or cloud servers. Once thedigital file payload is located, the digital acquisition systemretrieves the file and stores it in the release engine 101 servers.

The release trigger system 106 monitors conditionals that are associatedwith the user's request, and if the conditional criteria are met,releases the message so that it can be sent to one or more intendedrecipients via the user's preferred message delivery system. Asdescribed in more detail herein, the ground truth to determine if aconditional is met may be stored in the release engine 101, which can bequeried by the release trigger system 106. In other instances, if theground truth is not stored in the release engine 101, then the releasetrigger system 106 queries external databases that have high truth valueor fidelity to determine if the requesting user's conditional is met. Inone embodiment, the release trigger system 106 may query the groundtruth database regularly or at pre-specified intervals. In otherembodiments, the query may be triggered by other ground truth levelevents that are related to the requesting user's conditionals. Moreover,in one embodiment of the invention the release engine 106 may convert adata request from one form to another. For example, if the requestinguser has requested a conditional release via an email messaging system,but has requested that the released data be transmitted to a user via ashort-form messaging system, then the release trigger system 106converts the data delivery format from email to SMS. Other conversionsare possible as would be readily ascertainable by a person of ordinaryskill in the art without departing from the scope of the invention.

Still referring to FIG. 1, the user device 103 may be used by a user toinitiate a conditional message delivery or by recipients to view thedelivered messages. In particular embodiments, each user device 103 maybe an electronic device including hardware, software, or embedded logiccomponents or a combination of two or more such components and capableof carrying out the appropriate functions implemented or supported bythe user device 103. For example, and without limitation, a user device103 may be a desktop computer system, a notebook computer system, anetbook computer system, a handheld electronic device, or a mobiletelephone. The present disclosure contemplates any user device 103. Auser device 103 may enable a network user at the user device 103 toaccess network 110. A user device 103 may enable its user to communicatewith other users at other user devices 103.

A user device 103 may have a web browser, such as MICROSOFT INTERNETEXPLORER, GOOGLE CHROME or MOZILLA FIREFOX, and may have one or moreadd-ons, plug-ins, or other extensions, such as TOOLBAR or YAHOOTOOLBAR. A user device 104 may enable a user to enter a Uniform ResourceLocator (URL) or other address directing the web browser to a server,and the web browser may generate a Hyper Text Transfer Protocol (HTTP)request and communicate the HTTP request to server. The server mayaccept the HTTP request and communicate to the user device 104 one ormore Hyper Text Markup Language (HTML) files responsive to the HTTPrequest. The user device 103 may render a web page based on the HTMLfiles from server for presentation to the user. The present disclosurecontemplates any suitable web page files. As an example and not by wayof limitation, web pages may render from HTML files, Extensible HyperText Markup Language (XHTML) files, or Extensible Markup Language (XML)files, according to particular needs. Such pages may also executescripts such as, for example and without limitation, those written inJAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, combinations of markup languageand scripts such as AJAX (Asynchronous JAVASCRIPT and XML), and thelike. Herein, reference to a web page encompasses one or morecorresponding web page files (which a browser may use to render the webpage) and vice versa, where appropriate.

The user device 103 may also include an application that is loaded ontothe user device 104. The application 103 obtains data from the network110 and displays it to the user within an application interface.

Exemplary user devices are illustrated in some of the subsequent figuresprovided herein. This disclosure contemplates any suitable number ofuser devices, including computing systems taking any suitable physicalform. As example and not by way of limitation, computing systems may bean embedded computer system, a system-on-chip (SOC), a single-boardcomputer system (SBC) (such as, for example, a computer-on-module (COM)or system-on-module (SOM)), a desktop computer system, a laptop ornotebook computer system, an interactive kiosk, a mainframe, a mesh ofcomputer systems, a mobile telephone, a personal digital assistant(PDA), a server, or a combination of two or more of these. Whereappropriate, the computing system may include one or more computersystems; be unitary or distributed; span multiple locations; spanmultiple machines; or reside in a cloud, which may include one or morecloud components in one or more networks. Where appropriate, one or morecomputing systems may perform without substantial spatial or temporallimitation one or more steps of one or more methods described orillustrated herein. As an example, and not by way of limitation, one ormore computing systems may perform in real time or in batch mode one ormore steps of one or more methods described or illustrated herein. Oneor more computing system may perform at different times or at differentlocations one or more steps of one or more methods described orillustrated herein, where appropriate.

Still referring to FIG. 1, the data sources 107 may refer to digitaldata storage systems, such as storage on a user's computing device 103,data on on-premise servers, data on cloud severs, etc. Morespecifically, the digital data sources 107 may refer to servers of othercomputing systems such as social networking systems, message boards,photo sharing or data sharing system and website, etc. In oneembodiment, the data sources 107 refers to social networking systemssuch as FACEBOOK, LINKEDIN, GOOGLE+, PINTREST, TWITTER, etc. The digitaldata payload stored within the various data sources 107 may be locatedvia unique reference locators and the like, or via a specific mechanismas provided by the specific cloud or on-premise storage system or socialnetworking system.

In one embodiment, and as described elsewhere herein, the dataacquisition system 102 locates digital data payload that a user hasrequested to be sent conditionally based on unique resource locatorcodes and the like. In some embodiments, if the unique resource locatorcode is not provided in the conditional delivery request, then the dataacquisition system 102 performs a search in public and private databasesthat the requesting user has given access to. In such embodiments, thedata acquisition engine 102 may confirm with the requesting user thatthe searched for, and identified digital data payload is indeed the onethat the requesting user wants to send conditionally. The specificsystem and method for obtaining the confirmation may vary, as would bereadily ascertainable by persons of ordinary skill in the art, withoutdeparting from the scope of the invention.

The network 110 connects the various systems and computing devicesdescribed or referenced herein. In particular embodiments, network 110is an intranet, an extranet, a virtual private network (VPN), a localarea network (LAN), a wireless LAN (WLAN), a wide area network (WAN), ametropolitan area network (MAN), a portion of the Internet, or anothernetwork 421 or a combination of two or more such networks 110. Thepresent disclosure contemplates any suitable network 110.

One or more links couple one or more systems, engines or devices to thenetwork 110. In particular embodiments, one or more links each includesone or more wired, wireless, or optical links. In particularembodiments, one or more links each includes an intranet, an extranet, aVPN, a LAN, a WLAN, a WAN, a MAN, a portion of the Internet, or anotherlink or a combination of two or more such links. The present disclosurecontemplates any suitable links coupling one or more systems, engines ordevices to the network 110.

In particular embodiments, each system or engine may be a unitary serveror may be a distributed server spanning multiple computers or multipledatacenters. Systems, engines, or modules may be of various types, suchas, for example and without limitation, web server, news server, mailserver, message server, advertising server, file server, applicationserver, exchange server, database server, or proxy server. In particularembodiments, each system, engine or module may include hardware,software, or embedded logic components or a combination of two or moresuch components for carrying out the appropriate functionalitiesimplemented or supported by their respective servers. For example, a webserver is generally capable of hosting websites containing web pages orparticular elements of web pages. More specifically, a web server mayhost HTML files or other file types, or may dynamically create orconstitute files upon a request, and communicate them to client devicesor other devices in response to HTTP or other requests from clientsdevices or other devices. A mail server is generally capable ofproviding electronic mail services to various client devices or otherdevices. A database server is generally capable of providing aninterface for managing data stored in one or more data stores.

In particular embodiments, one or more data storages may becommunicatively linked to one or more servers via one or more links. Inparticular embodiments, data storages may be used to store various typesof information. In particular embodiments, the information stored indata storages may be organized according to specific data structures. Inparticular embodiment, each data storage may be a relational database.Particular embodiments may provide interfaces that enable servers orclients to manage, e.g., retrieve, modify, add, or delete, theinformation stored in data storage.

The system may also contain other subsystems and databases, which arenot illustrated in FIG. 1, but would be readily apparent to a person ofordinary skill in the art. For example, the system may include databasesfor storing data, storing features, storing outcomes (training sets),and storing models. Other databases and systems may be added orsubtracted, as would be readily understood by a person of ordinary skillin the art, without departing from the scope of the invention.

FIG. 2 is a block diagram illustrating an exemplary release engine inaccordance with an embodiment of the invention. It is comprised of adigital data acquisition system 102 (which is further comprised of anAPI interface 201 and a data scraper 202), a release trigger system 106(which is further comprised of calendar based release engine 205, APIbased release engine 206, conditional logic release engine 208, andlocation based release engine 210), release data 203, tagging module204, confirmation engine 212, notification engine 214, and theguest/access permissions engine (215).

The digital data acquisition system 102 and the release trigger system106 are described in greater detail above in reference to FIG. 1. Butgenerally, as described herein, the digital data acquisition system 102identifies and retrieves digital data payload information from one ormore data sources 107. In one embodiment, the API Interface 201 uses oneor more API interface systems such as Web APIs, Simple Object AccessProtocol (SOAP) APIs, Remote Procedure Call (RPC) APIs, and/orRepresentational State Transfer (REST) API systems to collect data fromone or more data sources 107. The specific implementation details forinitiating an API system are ascertainable by a person of ordinary skillin the art, and may be used herein without departing from the scope ofthe invention. The data scraper 202 scrapes digital data from one ormore data sources 107. The data scraper 202 may be used when API accessis not available to locate and retrieve digital payload data. In someembodiments, the data scraper 202 and the API interface 201 may be usedin conjunction to locate and retrieve digital data payloads that arequesting user wants to conditionally send.

The release trigger system 106 is also described in detail above withreference to FIG. 1. But generally, as described herein, the releasetrigger system 106 queries truth sources to determine if a condition setforth by the requesting user is met. For example, the calendar-basedrelease engine 205 queries a ground truth source such as a mastercalendar to determine if release date or event criteria are met. The APIbased release engine 206 queries data sources 107 to determine ifcertain even trigger criteria are met. In this instance, the API basedrelease engine 206 treats the data source 107 as a source of groundtruth. The conditional logic release engine 208 uses conditional logicto determine if a release trigger is met. For example, if a user sets aninitial condition to release a digital message if the ATLANTA FALCONSwin the SUPERBOWL, then the conditional logic release engine 208 queriesa truth source to determine the date and time of the conclusion of aSUPERBOWL. Thereafter, the conditional logic release engine 208 queriesa truth source to determine if the ATLANTA FALCONS have won theSUPERBOWL. If they have won the SUPERBOWL, then the conditional logicrelease engine 208 releases the digital media to the intendedrecipients.

The location-based release engine 210 queries a location database todetermine if a location-based criteria is met. For example, if arecipient has entered a geo-fenced area or if the recipient'sgeo-location, as determined, for example, by the location of therecipient's computing device 103, suggests that a receipt is at or neara location set by the requesting user, then the location based releaseengine 210 initiates a release protocol to release the message from therelease engine 101 to a messaging server for delivering the digital datapayload to the user. In one embodiment of the invention, thelocation-based release engine 210 may be triggered by the requestinguser's location. In such an embodiment, the location-based releaseengine 210 queries a location database associated with the requestinguser. If the requesting user is at or near a predefined location, thenthe location-based release engine 210 initiates a release protocol torelease the message from the release engine 101 to a messaging serverfor delivering the digital data payload to the user. The specificmethods for querying a geolocation-based database to ascertain a user'sor a recipient's location are readily ascertainable by persons ofordinary skill in the art, any one or more of those variousmethodologies may be used without departing from the scope of theinvention.

In one embodiment of the invention, a proprietary location determinationsystem and method may be used to minimize the battery drain that may beotherwise associated with querying location data on a recipient's mobilecomputing device. For example, in one embodiment of the invention, thelocation-based release engine 210 stores the location that is associatedwith digital data that a user wants to share with a recipient in alocation capsule. A variety of different types of location informationmay be used, including coordinate data, GNSS data such as GPS data,GLONASS data, etc. In one embodiment of the invention, thelocation-based release engine 210 queries the recipient's computingdevice at a periodic interval to determine whether the recipient is at alocation that is provided in the location capsule. In one embodiment,the frequency or the next location query on the recipient's device maybe determined based on the recipient's location at the last query andthe speed and direction of the recipient's movement. As such, the nextlocation query on the recipient's device may be dynamically generated.For example, if a recipient is in ATLANTA, GEORGIA and the locationcapsule is set to release when the recipient is at or near the BOSTONCOMMONS in BOSTON, MASSACHUSETTS, the next location query may be set forthe shortest theoretical and/or practical travel time to travel fromATLANTA, GEORGIA to BOSTON, MASSACHUSETTS. Moreover, if the recipient isdeemed to be traveling by a aerial vehicle (which may be indicated byproximity to an airport, for example, or other public or privateinformation that may be obtained from public databases or may be sharedby the recipient) or in a land-based vehicle, then the next locationquery may be set based on the expected theoretical or practical amountof time that it may take to travel from the recipient's current locationto the location in the time capsule. Similarly, if the direction of therecipient's travel is determined to be in the direction of the locationin the time-capsule and/or away from the location in the time-capsule,then the next query may be adjusted based on that information (i.e., ifthe recipient is determined to travel towards the location-capsule'slocation, then the next query may be closer to a theoretical orpractical travel time to travel from the recipient's location to thetime-capsule location; on the other hand, if the recipient is determinedto be traveling away from the location in the time-capsule, then thenext location determination query on the recipient's device may beextended beyond the theoretical or practical amount of time required totravel from the recipient's location to the capsule location). In oneembodiment of the invention, a theoretical time may represent thetheoretical amount of time that it may take to travel from therecipient's location to the capsule location via a travel mechanism.Practical time may represent other factors that may either speed up orslow down the recipient from traveling from his or her location to thecapsule location, including, for example, but not limited to traffic,transit change time, if, for example, using public transportation,delays due to weather or other events, etc. In one embodiment, thetiming of the next location determination query on the recipient'sdevice may be calculated based on an immediately prior locationdetermination query. In other embodiments, the next locationdetermination query may be calculated based on historical locationdetermination queries and the patterns that may emerge from thosequeries. By using the querying system and method described herein, thepresent invention permits fewer location queries on the recipient'scomputing device. Moreover, the disclosed system and method reduces thebattery drain that may be associated with the such queries. In oneembodiment, the recipient may force a location query at any given time.

In one embodiment of the invention, a relationship-based release engine211 releases a capsule if the distance between relationships, within asocial networking system, for example, and the nature of therelationship meets a criteria set by the sender. For example, if a usercreates a capsule that is to be shared only with immediate familymembers, then the relationship-based release engine 211 identifies V1relationships within a social networking graph that have been verifiedand transmits the capsule to the V1 verified recipients. In oneembodiment of the invention, a user may create a capsule and create aconditional wherein the capsule may be shared when a new member is addedto the user's immediate family. In one embodiment of the invention, theprocess and system described herein may identify new V1 additions thathave been verified and sends a capsule to the new additions. In oneembodiment of the invention, the inventive system and process describedherein may monitor trending topics or content of feeds that arecollectively generated by V1 connections to identify and/or verifywhether triggering events have occurred. In that sense, the V1 feed mayserve as a truth source for verification purposes—in other words, if asufficient number of V1 connections confirm or verify an event ordiscuss a certain topic, that confirmation and/or verification and/ordiscussion may serve as a localized truth source.

In one embodiment of the invention, a verification engine 216 may beused to ensure that a person cannot create multiple accounts within thesocial networking system. Generally, when a user signs up for the socialnetworking system, he or she may be required to submit a facialrecognition scan. The obtained facial recognition scan may be comparedto a database of scans to ensure that a user has not created multipleaccounts within the social networking system. In other words, the socialnetworking system determines whether a facial scan is unique when anaccount is created. If it is, then the user may be permitted to completethe account creation process.

In one embodiment of the invention, the verification engine 216 maygenerate a family tree of nodes within a social graph to verify users.The family tree may also be used for calculating distance and types ofrelationships within the social networking system and to determine orverify whether certain conditionals for releasing a capsule are met. Inone embodiment, a family tree may be generated when a user associateswith another user as a family member. Upon such an association, therecipient user may be asked to verify the relationship. Once such averification is obtained, other users who are connected to either thesending user and/or the recipient user a immediate family may alsoreceive a notification that an immediate family relationship has beenestablished between a family member and another user. In one embodiment,each family member may receive a notification and may be asked to verifythe new association between the sending user and the recipient user. Themore immediate family members that verify the relationship, the higherthe likelihood that may be assigned to a correct connection. Thisverification process helped ensure the validity of various relationshipsin a tree of nodes within a social networking system.

The release data store 203, the tagging module 204, the confirmationengine 212, and the notification engine 214 enable the release engine101 to initiate a data release protocol for transmitting digital datafrom the release engine 101 to the messaging servers, which furtherdeliver the digital data to the recipient. The release data store 203stores digital data that is obtained by the digital data acquisitionsystem 102. In one embodiment, the actual digital file may be stored inthe data store 203. However, in other embodiments, a locator ID forretrieving the digital data may be stored in the data store 203. Thetagging module 204 creates a relational database for generating databaserelationships such that user(s) and or recipient(s) may sort and/orarchive digital data for ease of retrieval.

The confirmation engine 212 confirms whether the conditional criteriaset forth by the requesting user has in fact been met. In oneembodiment, the confirmation engine 212 queries a different set ofdatabases or a different ground truth to independently verify whether aconditional criteria have been met. The notification engine 214 alertsthe user(s) and or the recipient(s) that the digital data has beenreleased and/or received and/or consumed. The guest/access permissionsengine 214 verifies whether a guest or an authorized user is permittedto trigger a release trigger. For example, a user may set up aguest/release access for another person who may access the user'saccount—if certain conditions are met—and initiate a trigger/releaseevent. In one specific example, a user may set up guest access for theexecutor of his or her estate. In the event of the user's death, andupon access by the guest/executor, the system generates a series ofnotifications to reach the user. For example, the system may call theuser's phone number several times to request a password. The system mayalso send several emails to one or more email address provided by theuser, or send text-messages or multi-media messages to reach the users.If these attempts are unsuccessful, the guest/executor is permitted toinitiate the release/trigger. It should be noted that in thesecircumstances, the guest/executor may be only permitted to trigger arelease event. The guest/executor/release agent may not be able toaccess any other information associated with the user's account.

FIG. 3 is a process diagram illustrating an exemplary method forexecuting the invention, in accordance with an embodiment of theinvention. The process begins by receiving a capsule 302. As describedabove, a capsule may be comprised of digital data with a conditional,wherein the digital data may be released to an intended recipient ifconditional criteria set forth in the capsule are met. In one embodimentof the invention, a capsule may be comprised digital payload data,intended recipient data, and conditional data, wherein the intendedrecipient information may include a identifier for a recipient, such asthe recipient's email address, phone number, or in the context of asocial networking system, an identifier that is associated with therecipient's account within the social graph.

The process continues by identifying the type of conditional 304 that isprovided in the capsule. As described above, a variety of conditionalsmay be provided, including, but not limited to a calendar basedconditional, API based conditional, location based conditional, eventbased conditional, death based conditional etc. A calendar basedconditional may be satisfied when a certain date or time—that isspecified in the capsule—is detected. An API based conditional may besatisfied when certain data, which may be set forth in the capsule, isdetected. A location based conditional may be satisfied when a recipientis detected to be at or near a location that is specified in thecapsule. An event based conditional may be satisfied when an event hasstarted or ended. Death based conditional may be satisfied when it isconfirmed that the sender has passed away.

The process continues by determining whether the conditional is met 306.Each conditional type may have its own set of conditional met 306analysis. For example, a calendar based conditional may cause theprocess to determine if the date and/or time requested by the sender ismet by querying a trusted truth source. The API based conditional may bemet when data is received and/or pulled from an API source as set forthin the capsule. A location based conditional may be satisfied when arecipient is deemed to be at or near a location that is specified in thecapsule. FIG. 4 illustrates the process of determining whether arecipient is at or near a location. An event based conditional may causethe process to determine if the event specified by the sender hasstarted and/or completed. For example, if a sender has sent a capsulewith an event based conditional, such as: send a message if the ATLANTAFALCONS win the SUPERBOWL. In this instance, the process may query atruth source to determine when the SUPERBOWL is scheduled to occur. Thenthe process may determine whether ATLANTA FALCONS are playing in theSUPERBOWL. If the ATLANTA FALCONS are deemed to play in the SUPERBOWL,then the process may look for the trigger conditions 308 at or aroundwhen the SUPERBOWL is scheduled to complete.

While the process is looking for trigger conditions 308, a partiallyviewable capsule 309 may be made available to the recipient. Forexample, if an image is shared as a capsule, then a partially blurredimage may be made available to the recipient while the process islooking for trigger conditions 308. If text is shared by a sender, thenpartially viewable text and/or one or more words within the shared textmay be made available to the recipient 309 while the process is lookingfor trigger conditions 308.

If a death based conditional is set in a capsule, then the process maydetermine if a conditional is met 306 by querying a truth source, suchas a morgue or a newspaper database. In one embodiment, the process maydetermine 306 that the conditional is met by identifying close familymembers of the deceased within the social networking system. If thedeceased's close family (i.e. social graph nodes with a first degree offamily connection) have created posts with words or sentimentsexpressing condolences and/or grief that are directed at the deceased.If a death based conditional is initiated, a release agent may becontacted to confirm release. If the release agent provides a releaseauthorization, then the sender may be notified that a releaseauthorization has been received from at least one release agent, thenotification comprising a cancellation election within a graphical userinterface enabling the sender to cancel the release of death conditionalcapsule. The process may also contact the sender through acommunications means outside of the social networking system if thesender has requested additional contact attempts, the contact enablingthe sender to provide a cancellation election to cancel the release ofdeath conditional capsule. If a cancellation is not received from thesender within a pre-determined period of time, then the process notifies310 the recipient and releases the capsuled digital data 312 to therecipient.

FIG. 4 illustrates a process for processing a location base capsule. Inone embodiment, the process receives 402 a location capsule. As providedabove, a location capsule has a conditional that may be satisfied when arecipient is detected to be at or near a location that is specified inthe capsule. Generally, constantly pinging a recipient's computingdevice for its location is not very efficient and may lead tosignificant battery drain. The process described herein, permits theprocess and the system to check a recipient's location in a manner thatreduces battery consumption. The process continues by looking up 404 thelocation that is provided in the location based capsule. A variety ofdifferent types of location information may be used, includingcoordinate data, GNSS data such as GPS data, GLONASS data, etc. In oneembodiment of the invention, the process queries 406 the recipient'scomputing device at a periodic interval to determine whether therecipient is at a location that is provided in the location capsule. Inone embodiment, the frequency or the next location query 412 on therecipient's device may be determined based on the recipient's locationat the last query and the speed and direction of the recipient'smovement. As such, the next location query on the recipient's device maybe dynamically generated. For example, if a recipient is in ATLANTA,GEORGIA and the location capsule is set to release when the recipient isat or near the BOSTON COMMONS in BOSTON, MASSACHUSETTS, the nextlocation query may be set for the shortest theoretical and/or practicaltravel time to travel from ATLANTA, GEORGIA to BOSTON, MASSACHUSETTS.Moreover, if the recipient is deemed to be traveling by an aerialvehicle 408 (which may be indicated by proximity to an airport, forexample, or other public or private information that may be obtainedfrom public databases or may be shared by the recipient) or in aland-based vehicle, then the next location query may be set based on theexpected theoretical or practical amount of time that it may take totravel from the recipient's current location to the location in thecapsule. Similarly, if the direction 410 of the recipient's travel isdetermined to be in the direction of the location in the time-capsuleand/or away from the location in the time-capsule, then the next querymay be adjusted based on that information (i.e., if the recipient isdetermined to travel towards the location-capsule's location, then thenext query may be closer to a theoretical or practical travel time totravel from the recipient's location to the time-capsule location; onthe other hand, if the recipient is determined to be traveling away 410from the location in the time-capsule, then the next locationdetermination query on the recipient's device may be extended beyond thetheoretical or practical amount of time required to travel from therecipient's location to the capsule location). In one embodiment of theinvention, a theoretical time may represent the theoretical amount oftime that it may take to travel from the recipient's location to thecapsule location via a travel mechanism. Practical time may representother factors that may either speed up or slow down the recipient fromtraveling from his or her location to the capsule location, including,for example, but not limited to traffic, transit change time, if, forexample, using public transportation, delays due to weather or otherevents, etc. In one embodiment, the timing of the next locationdetermination query on the recipient's device may be calculated based onan immediately prior location determination query. In other embodiments,the next location determination query may be calculated based onhistorical location determination queries and the patterns that mayemerge from those queries. By using the querying system and methoddescribed herein, the present invention permits fewer location querieson the recipient's computing device. Moreover, the disclosed system andmethod reduces the battery drain that may be associated with the suchqueries. In one embodiment, the recipient may force a location query atany given time.

Hardware Architecture

Generally, the techniques disclosed herein may be implemented onhardware or a combination of software and hardware. For example, theymay be implemented in an operating system kernel, in a separate userprocess, in a library package bound into network applications, on aspecially constructed machine, on an application-specific integratedcircuit (ASIC), or on a network interface card.

Software/hardware hybrid implementations of at least some of theembodiments disclosed herein may be implemented on a programmablenetwork-resident machine (which should be understood to includeintermittently connected network-aware machines) selectively activatedor reconfigured by a computer program stored in memory. Such networkdevices may have multiple network interfaces that may be configured ordesigned to utilize different types of network communication protocols.A general architecture for some of these machines may be describedherein in order to illustrate one or more exemplary means by which agiven unit of functionality may be implemented. According to specificembodiments, at least some of the features or functionalities of thevarious embodiments disclosed herein may be implemented on one or moregeneral-purpose computers associated with one or more networks, such asfor example an end-user computer system, a client computer, a networkserver or other server system, a mobile computing device (e.g., tabletcomputing device, mobile phone, smartphone, laptop, or other appropriatecomputing device), a consumer electronic device, a music player, or anyother suitable electronic device, router, switch, or other suitabledevice, or any combination thereof. In at least some embodiments, atleast some of the features or functionalities of the various embodimentsdisclosed herein may be implemented in one or more virtualized computingenvironments (e.g., network computing clouds, virtual machines hosted onone or more physical computing machines, or other appropriate virtualenvironments).

Referring now to FIG. 5, there is shown a block diagram depicting anexemplary computing device 10 suitable for implementing at least aportion of the features or functionalities disclosed herein. Computingdevice 10 may be, for example, any one of the computing machines listedin the previous paragraph, or indeed any other electronic device capableof executing software- or hardware-based instructions according to oneor more programs stored in memory. Computing device 10 may be configuredto communicate with a plurality of other computing devices, such asclients or servers, over communications networks such as a wide areanetwork a metropolitan area network, a local area network, a wirelessnetwork, the Internet, or any other network, using known protocols forsuch communication, whether wireless or wired.

In one aspect, computing device 10 includes one or more centralprocessing units (CPU) 12, one or more interfaces 15, and one or morebusses 14 (such as a peripheral component interconnect (PCI) bus). Whenacting under the control of appropriate software or firmware, CPU 12 maybe responsible for implementing specific functions associated with thefunctions of a specifically configured computing device or machine. Forexample, in at least one aspect, a computing device 10 may be configuredor designed to function as a server system utilizing CPU 12, localmemory 11 and/or remote memory 16, and interface(s) 15. In at least oneaspect, CPU 12 may be caused to perform one or more of the differenttypes of functions and/or operations under the control of softwaremodules or components, which for example, may include an operatingsystem and any appropriate applications software, drivers, and the like.

CPU 12 may include one or more processors 13 such as, for example, aprocessor from one of the Intel, ARM, Qualcomm, and AMD families ofmicroprocessors. In some embodiments, processors 13 may includespecially designed hardware such as application-specific integratedcircuits (ASICs), electrically erasable programmable read-only memories(EEPROMs), field-programmable gate arrays (FPGAs), and so forth, forcontrolling operations of computing device 10. In a particular aspect, alocal memory 11 (such as non-volatile random-access memory (RAM) and/orread-only memory (ROM), including for example one or more levels ofcached memory) may also form part of CPU 12. However, there are manydifferent ways in which memory may be coupled to system 10. Memory 11may be used for a variety of purposes such as, for example, cachingand/or storing data, programming instructions, and the like. It shouldbe further appreciated that CPU 12 may be one of a variety ofsystem-on-a-chip (SOC) type hardware that may include additionalhardware such as memory or graphics processing chips, such as a QUALCOMMSNAPDRAGON™ or SAMSUNG EXYNOS™ CPU as are becoming increasingly commonin the art, such as for use in mobile devices or integrated devices.

As used herein, the term “processor” is not limited merely to thoseintegrated circuits referred to in the art as a processor, a mobileprocessor, or a microprocessor, but broadly refers to a microcontroller,a microcomputer, a programmable logic controller, anapplication-specific integrated circuit, and any other programmablecircuit.

In one aspect, interfaces 15 are provided as network interface cards(NICs). Generally, NICs control the sending and receiving of datapackets over a computer network; other types of interfaces 15 may forexample support other peripherals used with computing device 10. Amongthe interfaces that may be provided are Ethernet interfaces, frame relayinterfaces, cable interfaces, DSL interfaces, token ring interfaces,graphics interfaces, and the like. In addition, various types ofinterfaces may be provided such as, for example, universal serial bus(USB), Serial, Ethernet, FIREWIRE™, THUNDERBOLT™, PCI, parallel, radiofrequency (RF), BLUETOOTH™, near-field communications (e.g., usingnear-field magnetics), 802.11 (WiFi), frame relay, TCP/IP, ISDN, fastEthernet interfaces, Gigabit Ethernet interfaces, Serial ATA (SATA) orexternal SATA (ESATA) interfaces, high-definition multimedia interface(HDMI), digital visual interface (DVI), analog or digital audiointerfaces, asynchronous transfer mode (ATM) interfaces, high-speedserial interface (HSSI) interfaces, Point of Sale (POS) interfaces,fiber data distributed interfaces (FDDIs), and the like. Generally, suchinterfaces 15 may include physical ports appropriate for communicationwith appropriate media. In some cases, they may also include anindependent processor (such as a dedicated audio or video processor, asis common in the art for high-fidelity A/V hardware interfaces) and, insome instances, volatile and/or non-volatile memory (e.g., RAM).

Although the system shown in FIG. 5 illustrates one specificarchitecture for a computing device 10 for implementing one or more ofthe embodiments described herein, it is by no means the only devicearchitecture on which at least a portion of the features and techniquesdescribed herein may be implemented. For example, architectures havingone or any number of processors 13 may be used, and such processors 13may be present in a single device or distributed among any number ofdevices. In one aspect, single processor 13 handles communications aswell as routing computations, while in other embodiments a separatededicated communications processor may be provided. In variousembodiments, different types of features or functionalities may beimplemented in a system according to the aspect that includes a clientdevice (such as a tablet device or smartphone running client software)and server systems (such as a server system described in more detailbelow).

Regardless of network device configuration, the system of an aspect mayemploy one or more memories or memory modules (such as, for example,remote memory block 16 and local memory 11) configured to store data,program instructions for the general-purpose network operations, orother information relating to the functionality of the embodimentsdescribed herein (or any combinations of the above). Programinstructions may control execution of or comprise an operating systemand/or one or more applications, for example. Memory 16 or memories 11,16 may also be configured to store data structures, configuration data,encryption data, historical system operations information, or any otherspecific or generic non-program information described herein.

Because such information and program instructions may be employed toimplement one or more systems or methods described herein, at least somenetwork device embodiments may include nontransitory machine-readablestorage media, which, for example, may be configured or designed tostore program instructions, state information, and the like forperforming various operations described herein. Examples of suchnontransitory machine-readable storage media include, but are notlimited to, magnetic media such as hard disks, floppy disks, andmagnetic tape; optical media such as CD-ROM disks; magneto-optical mediasuch as optical disks, and hardware devices that are speciallyconfigured to store and perform program instructions, such as read-onlymemory devices (ROM), flash memory (as is common in mobile devices andintegrated systems), solid state drives (SSD) and “hybrid SSD” storagedrives that may combine physical components of solid state and hard diskdrives in a single hardware device (as are becoming increasingly commonin the art with regard to personal computers), memristor memory, randomaccess memory (RAM), and the like. It should be appreciated that suchstorage means may be integral and non-removable (such as RAM hardwaremodules that may be soldered onto a motherboard or otherwise integratedinto an electronic device), or they may be removable such as swappableflash memory modules (such as “thumb drives” or other removable mediadesigned for rapidly exchanging physical storage devices),“hot-swappable” hard disk drives or solid state drives, removableoptical storage discs, or other such removable media, and that suchintegral and removable storage media may be utilized interchangeably.Examples of program instructions include both object code, such as maybe produced by a compiler, machine code, such as may be produced by anassembler or a linker, byte code, such as may be generated by forexample a JAVA™ compiler and may be executed using a Java virtualmachine or equivalent, or files containing higher level code that may beexecuted by the computer using an interpreter (for example, scriptswritten in Python, Perl, Ruby, Groovy, or any other scripting language).

In some embodiments, systems may be implemented on a standalonecomputing system. Referring now to FIG. 6, there is shown a blockdiagram depicting a typical exemplary architecture of one or moreembodiments or components thereof on a standalone computing system.Computing device 20 includes processors 21 that may run software thatcarry out one or more functions or applications of embodiments, such asfor example a client application 24. Processors 21 may carry outcomputing instructions under control of an operating system 22 such as,for example, a version of MICROSOFT WINDOWS™ operating system, APPLEmacOS™ or iOS™ operating systems, some variety of the Linux operatingsystem, ANDROID™ operating system, or the like. In many cases, one ormore shared services 23 may be operable in system 20, and may be usefulfor providing common services to client applications 24. Services 23 mayfor example be WINDOWS™ services, user-space common services in a Linuxenvironment, or any other type of common service architecture used withoperating system 21. Input devices 28 may be of any type suitable forreceiving user input, including for example a keyboard, touchscreen,microphone (for example, for voice input), mouse, touchpad, trackball,or any combination thereof. Output devices 27 may be of any typesuitable for providing output to one or more users, whether remote orlocal to system 20, and may include for example one or more screens forvisual output, speakers, printers, or any combination thereof. Memory 25may be random-access memory having any structure and architecture knownin the art, for use by processors 21, for example to run software.Storage devices 26 may be any magnetic, optical, mechanical, memristor,or electrical storage device for storage of data in digital form (suchas those described above, referring to FIG. 5). Examples of storagedevices 26 include flash memory, magnetic hard drive, CD-ROM, and/or thelike.

In some embodiments, systems may be implemented on a distributedcomputing network, such as one having any number of clients and/orservers. Referring now to FIG. 7, there is shown a block diagramdepicting an exemplary architecture 30 for implementing at least aportion of a system according to one aspect on a distributed computingnetwork. According to the aspect, any number of clients 33 may beprovided. Each client 33 may run software for implementing client-sideportions of a system; clients may comprise a system 20 such as thatillustrated in FIG. 6. In addition, any number of servers 32 may beprovided for handling requests received from one or more clients 33.Clients 33 and servers 32 may communicate with one another via one ormore electronic networks 31, which may be in various embodiments any ofthe Internet, a wide area network, a mobile telephony network (such asCDMA or GSM cellular networks), a wireless network (such as WiFi, WiMAX,LTE, and so forth), or a local area network (or indeed any networktopology known in the art; the aspect does not prefer any one networktopology over any other). Networks 31 may be implemented using any knownnetwork protocols, including for example wired and/or wirelessprotocols.

In addition, in some embodiments, servers 32 may call external services37 when needed to obtain additional information, or to refer toadditional data concerning a particular call. Communications withexternal services 37 may take place, for example, via one or morenetworks 31. In various embodiments, external services 37 may compriseweb-enabled services or functionality related to or installed on thehardware device itself. For example, in one aspect where clientapplications 24 are implemented on a smartphone or other electronicdevice, client applications 24 may obtain information stored in a serversystem 32 in the cloud or on an external service 37 deployed on one ormore of a particular enterprise's or user's premises.

In some embodiments, clients 33 or servers 32 (or both) may make use ofone or more specialized services or appliances that may be deployedlocally or remotely across one or more networks 31. For example, one ormore databases 34 may be used or referred to by one or more embodiments.It should be understood by one having ordinary skill in the art thatdatabases 34 may be arranged in a wide variety of architectures andusing a wide variety of data access and manipulation means. For example,in various embodiments one or more databases 34 may comprise arelational database system using a structured query language (SQL),while others may comprise an alternative data storage technology such asthose referred to in the art as “NoSQL” (for example, HADOOP CASSANDRA™,GOOGLE BIGTABLE™, and so forth). In some embodiments, variant databasearchitectures such as column-oriented databases, in-memory databases,clustered databases, distributed databases, or even flat file datarepositories may be used according to the aspect. It will be appreciatedby one having ordinary skill in the art that any combination of known orfuture database technologies may be used as appropriate, unless aspecific database technology or a specific arrangement of components isspecified for a particular aspect described herein. Moreover, it shouldbe appreciated that the term “database” as used herein may refer to aphysical database machine, a cluster of machines acting as a singledatabase system, or a logical database within an overall databasemanagement system. Unless a specific meaning is specified for a givenuse of the term “database”, it should be construed to mean any of thesesenses of the word, all of which are understood as a plain meaning ofthe term “database” by those having ordinary skill in the art.

Similarly, some embodiments may make use of one or more security systems36 and configuration systems 35. Security and configuration managementare common information technology (IT) and web functions, and someamount of each are generally associated with any IT or web systems. Itshould be understood by one having ordinary skill in the art that anyconfiguration or security subsystems known in the art now or in thefuture may be used in conjunction with embodiments without limitation,unless a specific security 36 or configuration system 35 or approach isspecifically required by the description of any specific aspect.

FIG. 8 shows an exemplary overview of a computer system 40 as may beused in any of the various locations throughout the system. It isexemplary of any computer that may execute code to process data. Variousmodifications and changes may be made to computer system 40 withoutdeparting from the broader scope of the system and method disclosedherein. Central processor unit (CPU) 41 is connected to bus 42, to whichbus is also connected memory 43, nonvolatile memory 44, display 47,input/output (I/O) unit 48, and network interface card (NIC) 53. I/Ounit 48 may, typically, be connected to keyboard 49, pointing device 50,hard disk 52, and real-time clock 51. NIC 53 connects to network 54,which may be the Internet or a local network, which local network may ormay not have connections to the Internet. Also shown as part of system40 is power supply unit 45 connected, in this example, to a mainalternating current (AC) supply 46. Not shown are batteries that couldbe present, and many other devices and modifications that are well knownbut are not applicable to the specific novel functions of the currentsystem and method disclosed herein. It should be appreciated that someor all components illustrated may be combined, such as in variousintegrated applications, for example Qualcomm or Samsungsystem-on-a-chip (SOC) devices, or whenever it may be appropriate tocombine multiple capabilities or functions into a single hardware device(for instance, in mobile devices such as smartphones, video gameconsoles, in-vehicle computer systems such as navigation or multimediasystems in automobiles, or other integrated hardware devices).

In various embodiments, functionality for implementing systems ormethods of various embodiments may be distributed among any number ofclient and/or server components. For example, various software modulesmay be implemented for performing various functions in connection withthe system of any particular aspect, and such modules may be variouslyimplemented to run on server and/or client components.

The skilled person will be aware of a range of possible modifications ofthe various embodiments described above. Accordingly, the presentinvention is defined by the claims and their equivalents.

Additional Considerations

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment.

Some embodiments may be described using the expression “coupled” and“connected” along with their derivatives. For example, some embodimentsmay be described using the term “coupled” to indicate that two or moreelements are in direct physical or electrical contact. The term“coupled,” however, may also mean that two or more elements are not indirect contact with each other, but yet still co-operate or interactwith each other. The embodiments are not limited in this context.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and Bis false (or not present), A is false (or not present)and Bis true (or present), and both A and B are true (or present).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the invention. Thisdescription should be read to include one or at least one and thesingular also includes the plural unless it is obvious that it is meantotherwise.

Upon reading this disclosure, those of skill in the art will appreciatestill additional alternative structural and functional designs for asystem and a process for creating an interactive message through thedisclosed principles herein. Thus, while particular embodiments andapplications have been illustrated and described, it is to be understoodthat the disclosed embodiments are not limited to the preciseconstruction and components disclosed herein. Various apparentmodifications, changes and variations may be made in the arrangement,operation and details of the method and apparatus disclosed hereinwithout departing from the spirit and scope defined in the appendedclaims.

What is claimed is:
 1. A computer program product for delivering anddisplaying capsuled digital data, the computer program productcomprising a non-transitory computer readable storage medium havinginstructions encoded thereon that, when executed by a processor, causethe processor to: receive capsuled digital data, the capsuled digitaldata comprising recipient information, release agent information,digital data to display to a recipient, and trigger event informationfor digitally releasing the capsuled digital data to the recipient, thetrigger event information comprising a trigger event that must be met inorder to release the capsuled digital data to the recipient; determinewhether the trigger event is met, the determining based, at least inpart, on a relationship-based release engine identifying when a distancebetween two or more relationships indicates that the recipient is addedto a social group; and provide the capsuled digital data to therecipient upon determining that the trigger event is met.
 2. Thecomputer program product of claim 1, wherein identifying the distancebetween the two or more relationships in the social group comprisesgenerating a family tree of users within the social group.
 3. Thecomputer program product of claim 1, wherein the distance between thetwo or more relationships in the social group is defined, at least inpart, by a relationship between two or more members of a family.
 4. Thecomputer program product of claim 1, wherein the social group is limitedto family members of an individual who created the capsuled digitaldata.
 5. The computer program product of claim 1, further comprising:generating a partially viewable version of the capsuled digital data,the partially viewable version including a blurred version of an imagecontained in the capsuled digital data.
 6. The computer program productof claim 5, wherein the blurred version of the image is displayed to therecipient when determining whether the trigger event is met.
 7. Acomputer-implemented method for delivering and displaying capsuleddigital data, the computer-implemented method comprising: receivingcapsuled digital data and a condition that must be met in order torelease the capsuled digital data to a recipient, the condition based atleast in part, on two or more individuals confirming a truth sourcenotifying the recipient that capsuled message digital data has beencreated for the recipient; determining whether the condition is met; andproviding the capsuled digital data to the recipient upon determiningthat the condition is met.
 8. The computer-implemented method of claim7, wherein the capsuled digital data is generated by a sender within asocial networking system.
 9. The computer-implemented method of claim 8,wherein the capsuled digital data includes recipient information foridentifying the recipient within the social networking system.
 10. Thecomputer-implemented method of claim 9, wherein the capsulated digitaldata includes release agent information for identifying a release agentwithin the social networking system.
 11. The computer-implemented methodof claim 7, wherein determining whether the condition is met is executedby using an application programming interface.
 12. Thecomputer-implemented method of claim 7, wherein the capsuled digitaldata is released if the recipient is at or near a location that isprovided by a location based release trigger that is included in thecapsuled digital data.
 13. The computer-implemented method of claim 7,wherein the capsuled digital data includes a release agent to releasethe capsuled digital data posthumously after death of a sender of thecapsuled digital data.
 14. The computer-implemented method of claim 13,wherein the capsuled digital data includes release agent identityinformation of at least one release agent who is a user within a socialnetworking system.
 15. The computer-implemented method of claim 14,further comprising: receiving a release authorization from the at leastone release agent; notifying the sender that a release authorization hasbeen received from the at least one release agent, the notificationcomprising a cancellation election within a graphical user interfaceenabling the sender to cancel the release of capsuled digital data;contacting the sender through a communications means outside of thesocial networking system if the sender has requested additional contactattempts, the contact enabling the sender to provide a cancellationelection to cancel the release of capsuled digital data; and sending thecapsuled digital data to the intended recipient if a cancellationelection is not received from the sender within a pre-determined periodof time.
 16. The computer-implemented method of claim 7, wherein thetruth source comprises social networking feeds of the two or moreindividuals.
 17. The computer-implemented method of claim 7, whereinconfirming the truth source comprises verifying an occurrence of atrigger event in social networking feeds of the two or more individuals.18. The computer-implemented method of claim 17, wherein verifying theoccurrence of the trigger event comprises monitoring social networkingfeeds of the two or more individuals.
 19. The computer-implementedmethod of claim 17, wherein verifying the occurrence of the triggerevent comprises monitoring trending topics in the social networkingfeeds of the two or more individuals.
 20. An apparatus for deliveringand displaying capsuled digital data, comprising: a memory; and at leastone processor coupled to the memory and configured to: receive acapsuled message and a condition that must be met in order to releasethe capsuled digital data to the a recipient, the condition based, atleast in part, on two or more individuals confirming a truth source;notify the recipient that the capsuled message has been created for therecipient; determine whether the condition is met; and provide thecapsuled message to the recipient upon determining that the condition ismet.